package com.hzh.starter.autoconfigure;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.annotation.Resource;

/**
 * @author hzh
 * @date 2024-04-23 09:41
 **/
// 必须，指明这是一个配置类
@Configuration
// 必须，绑定我们的配置文件类
@EnableConfigurationProperties(MyProperties.class)
// 可选，表示可以在配置文件中，通过 myGenerateService.enable来设置是否配置该类
// 如果没有指明，则默认为true，即表示配置，如果指明为false，就不配置了
@ConditionalOnProperty(prefix = "myGenerateService", value = "enable", matchIfMissing = true)
public class MyGenerateAutoConfiguration {

    @Resource
    private MyProperties myProperties;

    // 用@Bean将 MyGenerateService 注入到Spring容器中，并把配置文件传进去，以供 MyGenerateService 使用
    @Bean
    public MyGenerateService myGenerateService() {
        return new MyGenerateService(myProperties.getWorkId());
    }

}
